package maquina.interfaz.io;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JPanel;

import maquina.gestor.flujo.GestorIO;
import maquina.interfaz.io.Entrada.TipoEntrada;

public class Teclado extends PerifericoEntrada{

	private KeyAdapter key = new KeyAdapter(){
	
		public void keyPressed(KeyEvent e) {
			
			int code = e.getKeyCode();
			
			Entrada entrada = null;
			
			switch (code) {
			case KeyEvent.VK_UP:
				entrada = new Entrada(TipoEntrada.CONTRASTE);
				break;
			case KeyEvent.VK_DOWN:
				entrada = new Entrada(TipoEntrada.NOCONTRASTE);
				break;
			case KeyEvent.VK_1:
				entrada = new Entrada(TipoEntrada.SELECCION,1);
				break;
			case KeyEvent.VK_2:// 2
				entrada = new Entrada(TipoEntrada.SELECCION,2);
				break;
			case KeyEvent.VK_3:// 3
				entrada = new Entrada(TipoEntrada.SELECCION,3);
				break;
			case KeyEvent.VK_4:
				entrada = new Entrada(TipoEntrada.SELECCION,4);
				break;
			case KeyEvent.VK_5:
				entrada = new Entrada(TipoEntrada.SELECCION,5);
				break;
			case KeyEvent.VK_6:
				entrada = new Entrada(TipoEntrada.SELECCION,6);
				break;
			case KeyEvent.VK_7:
				entrada = new Entrada(TipoEntrada.SELECCION,7);
				break;
			case KeyEvent.VK_8:
				entrada = new Entrada(TipoEntrada.SELECCION,8);
				break;
			case KeyEvent.VK_9:
				entrada = new Entrada(TipoEntrada.SELECCION,9);
				break;
			case KeyEvent.VK_ENTER:// ENTER(confirma seleccion)
				entrada = new Entrada(TipoEntrada.CONFIRMACION);
				break;
			}
			if(entrada != null){
				
				gestorIO.gestionarEntrada(entrada);
			}
		}
	};
	
	public Teclado(GestorIO gestor) {
		super(gestor);
	}

	public void setListener(JPanel panel) {
		
		panel.addKeyListener(key);
	}
}
